CREATE PROCEDURE CarregaFatoOcorrencia (@DATA DATETIME)
AS
	DECLARE 
	@CodOcorrencia int,
	@gravidade varchar(45) ,
	@possuiVitimas int ,
	@quantidadeVitimas int ,
	@tipoOcorrencia varchar(45),
	@Quantidade int ,
	@QuantidadeVeiculos int,
	@dataOcorrencia DATE,
	@horaOcorrencia INT
	
	SET @Quantidade = 1
	
	--id`s
	DECLARE
		@idTempo INT,
		@idEndereco INT,
		@idCondicaoTempo INT,
		@idCondicaoVia INT,
		@idSinalizacaoVia INT

	DECLARE @BUSCAITENS INT
	SET @BUSCAITENS = (SELECT COUNT(*) FROM ST_SiGAT.dbo.Ocorrencia WHERE dataCarga = @DATA)
	IF (@BUSCAITENS <>0)
	BEGIN
		DECLARE C_OCORRENCIAS CURSOR FOR
		SELECT [CodOcorrencia],[gravidade],[possuiVitimas],[quantidadeVitimas]
			  ,[idEndereco],[tipoOcorrencia],[QuantidadeVeiculos],[dataOcorrencia]
			  ,[horaOcorrencia],[idCondicaoVia],[idCondicaoTempo],[idSinalizacaoVia]
		  FROM [ST_SiGAT].[dbo].[Ocorrencia]
		  WHERE dataCarga = @DATA
		
		OPEN	C_OCORRENCIAS
		FETCH	C_OCORRENCIAS INTO
			@CodOcorrencia, @gravidade, @possuiVitimas, @quantidadeVitimas, @idEndereco, @tipoOcorrencia,
			@QuantidadeVeiculos, @dataOcorrencia, @horaOcorrencia, @idCondicaoVia, @idCondicaoTempo, @idSinalizacaoVia;
		
		WHILE (@@FETCH_STATUS = 0)
		BEGIN
			-- OBTENDO IDS DAS DIMENSOES
			-- DIMTEMPO, DIMENDERECO
			SET @idTempo = (SELECT idTempo FROM DimTempo WHERE data = @dataOcorrencia AND hora = @horaOcorrencia)
			SET @idEndereco = (SELECT idEndereco FROM DimEnderecoOcorrencia WHERE CodEndereco = @idEndereco)
			
			--Carga
			INSERT INTO [DW_SiGAT].[dbo].[FatoOcorrencia]
					   ([CodOcorrencia],[gravidade],[possuiVitimas],[quantidadeVitimas]
					   ,[idEndereco],[tipoOcorrencia],[Quantidade],[QuantidadeVeiculos]
					   ,[idTempo],[idCondicaoTempo],[idCondicaoVia],[idSinalizacaoVia])
				 VALUES
					   (@CodOcorrencia, @gravidade, @possuiVitimas, @quantidadeVitimas
					   ,@idEndereco, @tipoOcorrencia, @Quantidade, @QuantidadeVeiculos
					   ,@idTempo, @idCondicaoTempo, @idCondicaoVia, @idSinalizacaoVia)
			FETCH C_OCORRENCIAS INTO
				@CodOcorrencia, @gravidade, @possuiVitimas, @quantidadeVitimas, @idEndereco, @tipoOcorrencia,
				@QuantidadeVeiculos, @dataOcorrencia, @horaOcorrencia, @idCondicaoVia, @idCondicaoTempo, @idSinalizacaoVia;
		END
	CLOSE C_OCORRENCIAS
	DEALLOCATE C_OCORRENCIAS
	END;
GO



--Teste da Carga
EXEC CarregaFatoOcorrencia '20120715';
SELECT * FROM FatoOcorrencia;
GO